package com.scanner;

import lombok.Data;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

/**
 * @author 顾志杰
 * @date 2021/3/16-10:53
 */
@Data
public class Invoker {

    private Method method;

    private Object target;

    /**
     * 创建invoker对象
     * @return
     */
    public static Invoker createInvoker(Method method,Object target){
        Invoker invoker = new Invoker();
        invoker.setMethod(method);
        invoker.setTarget(target);
        return invoker;
    }

    /**
     * invoker 反射调用
     * @param params
     * @return
     */
    public Object invoke(Object... params){
        try {
            return method.invoke(target,params);
        } catch (IllegalAccessException | InvocationTargetException e) {
            e.printStackTrace();
        }
        return null;
    }
}
